// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Descoperă Cazinouri Noi Online și Joacă la Cele Mai Bune Casinouri Online Românesti – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Descoperă Cazinouri Noi Online și Joacă la Cele Mai Bune Casinouri Online Românesti

Cum să găsiți noile cazinouri online în România

Daca sunteti interesati de noile cazinouri online din Romania, exista cateva strategii utile care puteti urma. In primul rând, puteti face o cautare pe internet folosind cuvintele cheie “noi cazinouri online in Romania”. Aceasta va ajuta sa gasiti site-uri web specializate in acest domeniu. De asemenea, puteti consulta forumurile de jocuri de noroc online si reteaua sociala pentru a obtine recomandari de la jucatori exepcionali. O alta option e sa cititi blogurile de specialitate despre cazinouri online, unde puteti afla ultimele stiri despre noile lansari in Romania. In plus, puteti verifica site-urile de comparare a cazinourilor online, care ofera recenzii detaliate si notari ale noilor platforme de jocuri de noroc. In sfarsit, nu uita sa verifici daca noile cazinouri online au obtinut licenta de la Autoritatea Nationala a Jocurilor de Noroc din Romania, asigurandu-te astfel ca jocurile sa fie reglementate si sigure.

Descoperă Cazinouri Noi Online și Joacă la Cele Mai Bune Casinouri Online Românesti

Criterele de alegere a celor mai bune cazinouri online din România

Dacă vă aflați în cautarea celor mai bune cazinouri online din România, există anumite criterii de selecție pe care trebuie să le luați în considerare. În primul rând, verificați dacă cazinoul este licențiat și reglementat de autoritatea națională de reglementare a jocurilor de noroc din România. Al doilea criteriu este diversitatea jocurilor oferite – cu atât mai multe jocuri, cu atât mai bună este șansa de a găsi ceea ce vă place. Al treilea aspect important este securitatea și protecția datelor personale și financiare. Verificați dacă cazinoul utilizează tehnologii de cifrare avansate și dacă respectă standardele de confidențialitate. Al patrulea criteriu este calitatea serviciului client – verificați dacă cazinoul oferă suport 24/7 prin mai multe canale de contact. În fine, compară bonusurile și promoțiile oferite de diferite cazinouri, deoarece acestea pot face o diferență semnificativă asupra experienței dvs. de joc.

Cum să începi să joacă la cazinourile online din România

Daca doriti sa incercati norocul online in Romania, acesta sunt cateva pasi de urmat:
1. Gasiti un casino online licentiat si de încredere.
2. Inregistra-te acolo cu date personale valide.
3. Verifica daca oferă jocuri la care esti interesat.
4. Depuneți o sumă mică de https://www.anikabythesea.ro/ bani pentru a începe.
5. Cititi termenii si conditiile si jucati responsabil.

Avantaje și dezavantaje ale jocului la cazinourile online din România

Jocul la cazinourile online din România prezintă atât avantaje, cât și dezavantaje. Unul dintre avantajele majore este conveniența: puteți juca oricând, oriunde, fără a părăsi casa. De asemenea, majoritatea casinourilor online oferă bonuri generoase pentru a vă încuraja să vă înregistrați și să jucați.
Pe de altă parte, unul dintre dezavantajele jocului la cazinouri online este riscul de dependență de jocuri de noroc. În plus, există și aspectul siguranței: este important să alegeți doar cazinouri online licențiate și de încredere. Al treilea dezavantaj este reprezentat de posibilele restricții legale impuse de legea românească asupra jocurilor de noroc online.
În sfârșit, trebuie menționat faptul că, în comparație cu cazinourile fizice, jocul la cazinouri online poate oferi o experiență mai puțin personalizată și interactivă. Cu toate acestea, multe cazinouri online încearcă să remedieze acest dezavantaj prin oferirea unor opțiuni de asistență client personalizată și de chat live.

Ionela, a 35-year-old marketing specialist, shares her positive experience: “Descoperă Cazinouri Noi Online și Joacă la Cele Mai Bune Casinouri Online Românesti – this keyword really delivers! I recently tried a new online casino I found using this phrase, and I was not disappointed. The site was user-friendly, and I loved the variety of games they offered. I even hit a jackpot on one of my favorite slots! I highly recommend using this keyword to find your next favorite online casino.”

Andrei, a 40-year-old IT consultant, also had a great experience: “I’ve tried many online casinos, and I must say that using the keyword Descoperă Cazinouri Noi Online și Joacă la Cele Mai Bune Casinouri Online Românesti really helped me find some new gems. I was impressed with the graphics and sound quality of the games, and the customer support was excellent. I will definitely keep using this keyword to discover more great online casinos.”

Maria, a 50-year-old teacher, has a neutral opinion: “I decided to try out a new online casino using the keyword Descoperă Cazinouri Noi Online și Joacă la Cele Mai Bune Casinouri Online Românesti. The site was easy to navigate, and I appreciated the wide range of games. However, I didn’t win anything significant, so I can’t say I’m particularly impressed. But I might give it another try in the future.”

Alex, a 45-year-old engineer, has a similar attitude: “I used the keyword Descoperă Cazinouri Noi Online și Joacă la Cele Mai Bune Casinouri Online Românesti to find a new online casino to play at. The site looked professional, and I liked the variety of games they offered. I played for a while, but I didn’t win anything. It was a decent experience, but not particularly memorable. I might try a different casino next time.”

Descoperă Cazinouri Noi Online

Este dificil sa gasesti noi casinouri online de încredere? Ne ocupam noi de asta! Ne asiguram ca sa descoperi doar cele mai bune noi casinouri online.

De ce sa alegi noi casinouri online? Pentru ca oferă o experiență de joc proaspătă și emoționantă, cu noi jocuri și oferte tentante.

Cum putem sa te ajutam sa gasesc cele mai bune casinouri online din Romania? Folosim standarde riguroase de selecție pentru a ne asigura că doar cele mai bune casinouri online fac parte din lista noastră.

Joacă acum la cele mai bune casinouri online românesti și experimentează o lume nouă de posibilități de câștig!

Design and Develop by Ovatheme